package com.wande.dataplatform.domain.vo;

import cn.idev.excel.annotation.ExcelProperty;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;

import java.io.Serial;
import java.io.Serializable;
import java.time.LocalDateTime;

/**
 * 系统配置视图对象
 *
 * @author wande
 */
@Data
@AutoMapper(target = com.wande.dataplatform.domain.SystemConfig.class)
public class SystemConfigVO implements Serializable {

    @Serial
    private static final long serialVersionUID = 1L;

    /**
     * 配置ID
     */
    @ExcelProperty(value = "配置ID")
    private Long id;

    /**
     * 配置键
     */
    @ExcelProperty(value = "配置键")
    private String configKey;

    /**
     * 配置值
     */
    @ExcelProperty(value = "配置值")
    private String configValue;

    /**
     * 配置类型
     */
    @ExcelProperty(value = "配置类型")
    private String configType;

    /**
     * 值类型
     */
    @ExcelProperty(value = "值类型")
    private String valueType;

    /**
     * 配置描述
     */
    @ExcelProperty(value = "配置描述")
    private String description;

    /**
     * 是否加密
     */
    @ExcelProperty(value = "是否加密")
    private Integer isEncrypted;

    /**
     * 是否必填
     */
    @ExcelProperty(value = "是否必填")
    private Integer isRequired;

    /**
     * 默认值
     */
    @ExcelProperty(value = "默认值")
    private String defaultValue;

    /**
     * 验证规则
     */
    @ExcelProperty(value = "验证规则")
    private String validationRule;

    /**
     * 显示顺序
     */
    @ExcelProperty(value = "显示顺序")
    private Integer displayOrder;

    /**
     * 状态
     */
    @ExcelProperty(value = "状态")
    private Integer status;

    /**
     * 备注
     */
    @ExcelProperty(value = "备注")
    private String remark;

    /**
     * 创建时间
     */
    @ExcelProperty(value = "创建时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime createTime;

    /**
     * 更新时间
     */
    @ExcelProperty(value = "更新时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime updateTime;
}
